1. Field of the Invention
The embodiments of the present invention relate to distributed applications and protocols used thereby. More specifically, embodiments of the present invention relate to systems, methods, and computer-readable mediums for offloaded computation of distributed application protocols within a cluster of data processing nodes.
2. Description of Related Art
Distributed applications generally use numerous protocols (i.e., distributed application protocols) to make coordinated decisions among a group of application instances. These applications and protocols are distributed among a plurality of nodes within a cluster of data processing nodes. Accordingly, such protocols are referred to herein as distributed application protocols.
Group membership monitoring, leadership election, and distributed state machine management are examples of distributed application protocols. These protocols are implemented by exchanging messages between instances of such protocols (i.e., on different nodes) using a communication network. Depending on the nature of a particular application and its guarantees of consistency across instances, the frequency and number of these messages can be quite high.
To avoid frequently interrupting an application being served by one or more distributed application protocol and to increase reliability of the one or more distributed application protocols, it has become common to implement certain distributed application protocols on groups of dedicated servers. More specifically, some distributed application protocols are deployed on servers running only those distributed application protocols. Although this approach to implementing distributed application protocols can improve latency and reliability, it is known to complicate deployment and management and to limit overall cluster scalability.